package com.molichuxing.gateway.api.services;


import java.util.List;
import java.util.Map;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.framework.result.ResponseResult;
import com.molichuxing.gateway.bff.dealer.entity.request.modify.create.StoreCreateVo;
import com.molichuxing.gateway.bff.dealer.entity.request.modify.modify.StoreModifyVerifyStatusVo;
import com.molichuxing.gateway.bff.dealer.entity.response.StoreInfoVo;
import com.molichuxing.gateway.bff.dealer.entity.response.StoreModifyStatusVo;
import com.molichuxing.gateway.bff.dealer.entity.response.StoreModifyVo;
import com.molichuxing.gateway.bff.dealer.entity.response.StoreVo;

/**
 * 经销商相关接口
 *
 * @author zhaopenghui
 * @date 2019年8月27日
 */
public interface DealerApiService {

    /**
     * 根据经销商id查询门店信息
     * <p>
     * 经销商id
     *
     * @return
     */
    public ResponseResult<List<StoreVo>> getStoreByDealerId();

    /**
     * 获取门店列表
     *
     * @param params
     * @param pageNum
     * @param pageSize
     * @return
     */
    public ResponseResult<Paged<StoreVo>> getStorePage(Map<String, Object> params, Integer pageNum, Integer pageSize);

    /**
     * 编辑门店信息
     *
     * @param storeModifyVo
     * @return
     */
    public ResponseResult<Boolean> modifyStore(StoreModifyVo storeModifyVo);

    /**
     * 编辑门店状态
     *
     * @param storeModifyStatusVo
     * @return
     */
    public ResponseResult<Boolean> modifyStoreStatus(StoreModifyStatusVo storeModifyStatusVo);

    /**
     * 添加门店
     *
     * @param storeCreateVo
     * @return
     */
    public ResponseResult<Boolean> createStore(StoreCreateVo storeCreateVo);


    /**
     * 门店审核
     *
     * @param storeModifyVerifyStatusVo
     * @return
     */
    public ResponseResult<Boolean> modifyStoreVerifyStatus(StoreModifyVerifyStatusVo storeModifyVerifyStatusVo);

    /**
     * 门店详情
     *
     * @param storeId
     * @return
     */
    public ResponseResult<StoreInfoVo> getStoreInfo(Integer storeId);


    /**
     * 根据经销商id查询营业中门店信息
     *
     * @param notShowStoreId 不显示门店id
     * @return
     */
    public ResponseResult<List<StoreVo>> getOpenStoreByDealerId(Integer notShowStoreId);
}


